home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / idl / nsIXPCSecurityManager.idl < prev    next >
Text File  |  2006-05-08  |  4KB  |  111 lines

  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2.  *
  3.  * ***** BEGIN LICENSE BLOCK *****
  4.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  5.  *
  6.  * The contents of this file are subject to the Mozilla Public License Version
  7.  * 1.1 (the "License"); you may not use this file except in compliance with
  8.  * the License. You may obtain a copy of the License at
  9.  * http://www.mozilla.org/MPL/
  10.  *
  11.  * Software distributed under the License is distributed on an "AS IS" basis,
  12.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  13.  * for the specific language governing rights and limitations under the
  14.  * License.
  15.  *
  16.  * The Original Code is Mozilla Communicator client code, released
  17.  * March 31, 1998.
  18.  *
  19.  * The Initial Developer of the Original Code is
  20.  * Netscape Communications Corporation.
  21.  * Portions created by the Initial Developer are Copyright (C) 1998
  22.  * the Initial Developer. All Rights Reserved.
  23.  *
  24.  * Contributor(s):
  25.  *   John Bandhauer <jband@netscape.com> (original author)
  26.  *
  27.  * Alternatively, the contents of this file may be used under the terms of
  28.  * either of the GNU General Public License Version 2 or later (the "GPL"),
  29.  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  30.  * in which case the provisions of the GPL or the LGPL are applicable instead
  31.  * of those above. If you wish to allow use of your version of this file only
  32.  * under the terms of either the GPL or the LGPL, and not to allow others to
  33.  * use your version of this file under the terms of the MPL, indicate your
  34.  * decision by deleting the provisions above and replace them with the notice
  35.  * and other provisions required by the GPL or the LGPL. If you do not delete
  36.  * the provisions above, a recipient may use your version of this file under
  37.  * the terms of any one of the MPL, the GPL or the LGPL.
  38.  *
  39.  * ***** END LICENSE BLOCK ***** */
  40.  
  41. #include "nsISupports.idl"
  42.  
  43. %{ C++
  44. #include "jspubtd.h"
  45. %}
  46.  
  47. interface nsIClassInfo;
  48. interface nsIXPCNativeCallContext;
  49.  
  50. [ptr] native JSContextPtr(JSContext);
  51. [ptr] native JSObjectPtr(JSObject);
  52.       native JSVal(jsval);
  53.  
  54. [uuid(31431440-f1ce-11d2-985a-006008962422)]
  55. interface nsIXPCSecurityManager : nsISupports
  56. {
  57.     /**
  58.     * These flags are used when calling nsIXPConnect::SetSecurityManager
  59.     */
  60.  
  61.     const PRUint32 HOOK_CREATE_WRAPPER  = 1 << 0;
  62.     const PRUint32 HOOK_CREATE_INSTANCE = 1 << 1;
  63.     const PRUint32 HOOK_GET_SERVICE     = 1 << 2;
  64.     const PRUint32 HOOK_CALL_METHOD     = 1 << 3;
  65.     const PRUint32 HOOK_GET_PROPERTY    = 1 << 4;
  66.     const PRUint32 HOOK_SET_PROPERTY    = 1 << 5;
  67.  
  68.     const PRUint32 HOOK_ALL             = HOOK_CREATE_WRAPPER  |
  69.                                           HOOK_CREATE_INSTANCE |
  70.                                           HOOK_GET_SERVICE     |
  71.                                           HOOK_CALL_METHOD     |
  72.                                           HOOK_GET_PROPERTY    |
  73.                                           HOOK_SET_PROPERTY    ;
  74.  
  75.     /**
  76.     * For each of these hooks returning NS_OK means 'let the action continue'.
  77.     * Returning an error code means 'veto the action'. XPConnect will return
  78.     * JS_FALSE to the js engine if the action is vetoed. The implementor of this
  79.     * interface is responsible for setting a JS exception into the JSContext
  80.     * if that is appropriate.
  81.     */
  82.  
  83.     void CanCreateWrapper(in JSContextPtr aJSContext,
  84.                           in nsIIDRef aIID,
  85.                           in nsISupports aObj,
  86.                           in nsIClassInfo aClassInfo,
  87.                           inout voidPtr aPolicy);
  88.  
  89.     void CanCreateInstance(in JSContextPtr aJSContext,
  90.                            in nsCIDRef aCID);
  91.  
  92.     void CanGetService(in JSContextPtr aJSContext,
  93.                        in nsCIDRef aCID);
  94.  
  95.     /*
  96.      * Used for aAction below
  97.      */
  98.     const PRUint32 ACCESS_CALL_METHOD  = 0;
  99.     const PRUint32 ACCESS_GET_PROPERTY = 1;
  100.     const PRUint32 ACCESS_SET_PROPERTY = 2;
  101.  
  102.     void CanAccess(in PRUint32 aAction,
  103.                    in nsIXPCNativeCallContext aCallContext,
  104.                    in JSContextPtr aJSContext,
  105.                    in JSObjectPtr aJSObject,
  106.                    in nsISupports aObj,
  107.                    in nsIClassInfo aClassInfo,
  108.                    in JSVal aName,
  109.                    inout voidPtr aPolicy);
  110. };
  111.